package futbol.tacticas.concursantes.TacticaErre;
import java.awt.*;
import java.util.Vector;
import futbol.tacticas.*;
import futbol.tacticas.concursantes.Tactica;


public class TacticaErre implements Tactica {

private int nValores[][]={
    {-148,0,7}, //Jugador 1
    {-97,32,1}, //Jugador 2
    {-97,-32,1}, //Jugador 3
    {-53,70,2}, //Jugador 4
    {-53,-70,2}, //Jugador 5
    {0,-47,0}, //Jugador 6
    {0,47,0}, //Jugador 7
    {45,10,0}, //Jugador 8
    {45,-78,5}, //Jugador 9
    {-25,-10,3}, //Jugador 10
    {95,-10,6} //Jugador 11
    
};

public Color getColor1(){
    return new Color(0,0,180);
}

public Color getColor2(){
    return new Color(0,0,130);
}

public Color getColorNumero(){
    return new Color(255,255,255);
}

public String getNombre(){
    return "Erre";
}

public int getXInicial(int n){
    return nValores[n][0];   
}
public int getYInicial(int n){
    return nValores[n][1];
}

public int getFuerza(int n){
    return nValores[n][2];
}

public Vector<Comando> getComandos(SituacionJugadores sj){
    Vector<Comando> com=new Vector();
    
    //Posiciones iniciales
    for(int n=0;n<11;n++)
        com.add(new ComandoIrA(n,nValores[n][0],nValores[n][1]));
    
    //Movimiento más cercano a la bola
    int nJug=sj.getMasCercanoDeBola();
    Point bola=sj.getBola();
    com.add(new ComandoIrA(nJug,bola.getX(),bola.getY()));
    
    //Movimiento Portero
    
    int y=(int)bola.getY()/((int)Math.random()+1);
    if(y>28)y=28;
    if(y<-28)y=-28;
    com.add(new ComandoIrA(0,nValores[0][0],y));
    
    
    
    Point contrarios[]=sj.getContrario();
  //Mejorar defensa
    if (!sj.estoyMasCercaDeBola()){
        for (int n=1;n<9;n++){
            if(n==1||n==9){int nJC=sj.getContrarioMasCerca(getXInicial(n), getYInicial(n));
            com.add(new ComandoIrA(n, contrarios[nJC].getX()+5, contrarios[nJC].getY()));}
        }
    }
   
    
    
    //Golpear bola
    for(int n=0;n<11;n++){
    	Point jugadores[]=sj.getMisJugadores();
    	if(n==7 || n==8 || n==9){com.add(new ComandoPase(n, 10));}
    	if(n==0){com.add(new ComandoTiroAPuerta(0,(int)Math.random()*178-89));}
    	else if(jugadores[n].getX()<0){
    		//int nSigJug=sj.getSiguienteJugador(n);
    		com.add(new ComandoTiroAPuerta(n, (int)Math.random()*150-75));
    	}
    	else{com.add(new ComandoTiroAPuerta(n,(int)Math.random()*6-3));
    		
    	}
    }
    
    
    
    
    
  
    return com;
}

public int azar(int x, int y){
	double rand=Math.random();
	if(rand>=0.5){
		return x;
	}
	else{return y;}
	
}



}